Practical Verification of Embedded Software
نویسندگان
چکیده
A dvances in processor speed, memory capacities , sensors, and peripherals have enabled the inexpensive fabrication of sophisticated products ranging from mobile phones and hi-fi equipment to highly complex software in cars and airplanes. Unfortunately, the lack of good design methods and tools is a major bottleneck in the development of these products, particularly those with a short life cycle such as consumer electronics and household appliances. Developing embedded software for large, complicated applications requires models that are both intellectually manageable and physically realizable. Choosing a modeling technique is a compromise between conflicting goals: Models must be easy to comprehend and construct, but they also must be practicable and provide platforms for analysis. Academia and commercial tool developers have proposed various embedded software models that represent different emphases on these goals. 1-3 In the model we describe, efficient realizations and correctness receive high priority at the expense of descriptive features. Because embedded software is firmware—and therefore difficult or impossible to replace—its correctness is of paramount importance. Furthermore, embedded applications are often manufactured in large quantities, making it expensive to correct software errors. Exhaustive verification—a technique that implicitly checks all possible computations—is a practical alternative for ensuring the correctness of embedded software. Our work demonstrates that the visualState commercial design tool can verify even the largest industrial applica-tions—comprising more than 1,000 concurrent compo-nents—in a few minutes on a standard PC. The compositional backward technique is a new algorithm that dramatically improves runtimes compared with the algorithms traditionally used for exhaustive verification. We developed this algorithm to check safety properties, but it has been extended to handle a larger class of properties including liveness. Our algorithm dramatically improves verification runtimes by decoupling independent states and collapsing states that behave similarly. We have obtained encouraging results using this algorithm to exhaustively verify embedded controllers used in large industrial applications. Previous versions of visualState (http://www.visualstate.com), the commercial tool that incorporates the compositional backward technique for developing embedded software, have been used in hundreds of industrial applications. As with most other software, manufacturers use tests to verify the correctness of embedded software. However, a simple example demonstrates why— despite its extensive use—software testing is grossly insufficient to ensure the correctness of even modestly complex embedded software. Assume that a human operator uses the control panel shown in Figure 1 to control two plane motors. The control panel has several buttons and two warning lights (the …
منابع مشابه
Embedded Software and Systems
Practical Control's embedded software team have experience in large multiprocessor designs through to small single low power embedded software devices. We are ISO9001 certified and have rigorous quality procedures for software development, change control, defect tracking and software verification. We follow agile development practices and are experienced in project managing large and complex de...
متن کاملRuntime verification and monitoring of embedded systems
Ensuring the correctness of software applications is a difficult task. The area of runtime verification, which combines the approaches of formal verification and testing, offers a practical but limited solution that can help in finding many errors in software. Runtime verification relies upon tools for monitoring software execution. There are particular difficulties with regard to monitoring em...
متن کاملMaking Embedded Systems Design Patterns For Great Software
embedded systems and software validation morgan kaufmann series in systems on silicon PDF embedded systems security practical methods for safe and secure software and systems development PDF software modeling and design uml use cases patterns and software architectures PDF embedded systems hardware for software engineers PDF embedded software development for safety-critical systems PDF advances...
متن کاملEmbedded Software Development For Safety Critical Systems
Title Type embedded software development for safety-critical systems PDF mission-critical and safety-critical systems handbook design and development for embedded applications PDF software engineering for embedded systems chapter 17 multicore software development for embedded systems this chapter draws on material from the multicore guide mpp from the multicore association PDF embedded systems ...
متن کاملTowards a Model-based Toolchain for the High-Confidence Design of Embedded Systems
While design automation for hardware systems is quite advanced, this is not the case for practical embedded systems. The current state-of-the-art is to use a software modeling environment and integrated development environment for code development and debugging, but these rarely include the sort of automatic synthesis and verification capabilities available in the VLSI domain. This paper introd...
متن کاملComputing Laboratory ON SOFTWARE VERIFICATION FOR SENSOR NODES
We consider software written for networked, wireless sensor nodes, and specialize software verification techniques for standard C programs in order to locate programming errors in sensor applications before the software’s deployment on motes. Ensuring the reliability of sensor applications is challenging: low-level, interrupt-driven code runs without memory protection in dynamic environments. T...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Computer
دوره 33 شماره
صفحات -
تاریخ انتشار 2000